package com.example.springmvc_exception.通过注解实现全局异常;

import com.example.springmvc_exception.BusinessException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

import java.util.HashMap;
import java.util.Map;

/**
 * SpingMVC提供的第三种种全局异常处理方式
 * 1）@ControllerAdvice +@ExceptionHandler
 * 2）@RestControllerAdvice +@ExceptionHandler
 *      @RestControllerAdvice ==@Controller +@ResponseBody 返回JSON的数据格式，绕开视图解析器
 */
@RestControllerAdvice
public class 全局异常处理器2 {

    @ExceptionHandler
    public Map<String,Object> exceptionHandler(Exception e){
        Map<String,Object> json = new HashMap();
        /*判断异常类型*/
        if(e instanceof BusinessException){
            json.put("msg", "系统繁忙，请稍后再试~");
            json.put("code",500);
        }
        return json;
    }

}